###############################################################
## Makefile per il progetto NMAT
##
###############################################################
# uncomment for test coverage information
#   $$ gcov -f stree    
#   $$ more stree.c.gcov
#COVFLAGS=-fprofile-arcs -ftest-coverage

# compilatore
CC = gcc
# flags compilatore
#CFLAGS = -Wall -pedantic -g $(COVFLAGS)
CFLAGS = -Wall -g 
OBJFLAGS = -Wall -c

# nome libreria
LIBNAME = libnmcom.a

# directory libreria
LIBDIR = ../lib

.PHONY: all clean

all: server worker client
	@echo -e 'MAKE ALL completo\a'

clean:
	-rm -fr *.o *.gch *~	

#tenerli?
# nomi file oggetto
SERVEROBJS = nmats.o
CLIENTOBJS = nmatc.o 
WORKEROBJS = worker.o
NMCOMOBJS = nmcom.o



# nomi eseguibili
server = nmats
client = nmatc
worker = worker


# dipendenze eseguibili: oggetti e/o librerie
# mettere ec poi

# targets per le librerie
#farne una dir poi
#lib: nmcom.o
#	ar -r libnmcom.a nmcom.o




# targets eseguibili

# regole per server
server: nmats.o
	$(CC) $(CFLAGS) $^ -o server 
	
nmats.o: nmats.c nmats.h nmat.h util.h
	$(CC) $(OBJFLAGS) $<
# regole per client
client: nmatc.o nmcom.o client_parse.o
	$(CC) $(CFLAGS) $^ -o client

nmatc.o: nmatc.c nmat.h nmatc.h nmcom.h client_parse.h util.h
	$(CC) $(OBJFLAGS) $<

client_parse.o: client_parse.c client_parse.h util.h
	$(CC) $(OBJFLAGS) $<

#regole per worker
worker: worker.o nmcom.o fileio.o mat_funs.o
	$(CC) $(CFLAGS) $^ -o worker

worker.o : worker.c worker.h nmat.h nmcom.h fileio.h util.h
	$(CC) $(OBJFLAGS) $<

fileio.o : fileio.c fileio.h util.h
	$(CC) $(OBJFLAGS) $<

mat_funs.o : mat_funs.c mat_funs.h util.h
	$(CC) $(OBJFLAGS) $<

#regole nmcom fare lib?
nmcom.o : nmcom.c nmcom.h nmat.h util.h
	$(CC) $(OBJFLAGS) $<

# dipendenze files oggetto, header





#da fare
# phony targets #aggiungere cleanall poi


#da fare
# regola all da completare
#all: server client worker
	
#da fare	
# regola test da completare con l'invocazione automatica dei test sviluppati
#test:
#	exit 1

#da fare
# regola clean, da completare con rimozione oggetti etc..
#clean:
#	exit 1

#da fare
# lista di file da consegnare (.c e .h) 
FILE_DA_CONSEGNARE=README nmats.c nmatc.c Makefile gruppo.txt
# da modificare con il nome del file della relazione
RELAZIONE=a.pdf



########### NON MODIFICARE DA QUA IN POI #################################
SUBJECT="LPS: Consegna progetto di recupero (nmat)"

#effettua il test e la consegna
#consegna:
#	make clean
#	make test
#	./gruppo-check.pl < gruppo.txt
#	tar -cvf $(USER)-nmat.tar $(FILE_DA_CONSEGNARE) $(RELAZIONE)
#	mpack -s $(SUBJECT1) ./$(USER)-f1.tar  susanna@di.unipi.it
#	@echo -e "\a\n*** PROGETTO DI RECUPERO CONSEGNATO! ***\n"



